package com.t2tierp.pafecf.infra;

import br.com.classes.Configuracao;
import br.com.classes.Empresa;
import java.util.List;
import javax.swing.table.AbstractTableModel;

public class ConfiguracaoTableModel extends AbstractTableModel {

    private List<Configuracao> listaConfiguracao;

    public ConfiguracaoTableModel(List<Configuracao> listaConfiguracao) {
        this.listaConfiguracao = listaConfiguracao;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {

        Configuracao configuracao = listaConfiguracao.get(rowIndex);

        switch (columnIndex) {
            case 0:
                return configuracao.getIdEcfEmpresa();
            case 1:
                return configuracao.getIdEcfCaixa();
            case 2:
                return configuracao.getIdEcfImpressora().getId();
            case 3:
                return configuracao.getIdEcfResolucao().getId();
            case 4:
                return configuracao.getMensagemCupom();
            case 5:
                return configuracao.getPortaEcf();
            case 6:
                return configuracao.getPortaPinpad();
            case 7:
                return configuracao.getPortaBalanca();
            case 8:
                return configuracao.getIpServidor();
            case 9:
                return configuracao.getIpSitef();
            case 10:
                return configuracao.getTipoTef();
            case 11:
                return configuracao.getTituloTelaCaixa();
            case 12:
                return configuracao.getCaminhoImagensProdutos();
            case 13:
                return configuracao.getCaminhoImagensMarketing();
            case 14:
                return configuracao.getCaminhoImagensLayout();
            case 15:
                return configuracao.getCorJanelasInternas();
            case 16:
                return configuracao.getMarketingAtivo();
            case 17:
                return configuracao.getCfopEcf();
            case 18:
                return configuracao.getCfopNf2();
            case 19:
                return configuracao.getTimeoutEcf();
            case 20:
                return configuracao.getIntervaloEcf();
            case 21:
                return configuracao.getDescricaoSuprimento();
            case 22:
                return configuracao.getDescricaoSangria();
            case 23:
                return configuracao.getIndiceGerencialDav();
        }
        return null;
    }

    public int getRowCount() {

        return listaConfiguracao.size();
    }

    public int getColumnCount() {
        return 23;
    }

    public Configuracao getValues(int rowIndex) {
        return listaConfiguracao.get(rowIndex);
    }

    public boolean isCellEditable(int row, int col) {
        return true;
    }

    @Override
    public void setValueAt(Object value, int row, int col) {

        String valor = "";
        if (value.toString().equals("")) {
            valor = "0";
        } else {
            valor = value.toString();
        }

        switch (col) {
            case 0:
                listaConfiguracao.get(row).setIdEcfEmpresa((Empresa)value);
                break;
            case 1:
                listaConfiguracao.get(row).getIdEcfCaixa().setId(Integer.valueOf(valor));
                break;
            case 2:
                listaConfiguracao.get(row).getIdEcfImpressora().setId(Integer.valueOf(valor));
                break;
            case 3:
                listaConfiguracao.get(row).getIdEcfResolucao().setId(Integer.valueOf(valor));
                break;
            case 4:
                listaConfiguracao.get(row).setMensagemCupom(value.toString());
                break;
            case 5:
                listaConfiguracao.get(row).setPortaEcf(value.toString());
                break;
            case 6:
                listaConfiguracao.get(row).setPortaPinpad(value.toString());
                break;
            case 7:
                listaConfiguracao.get(row).setPortaBalanca(value.toString());
                break;
            case 8:
                listaConfiguracao.get(row).setIpServidor(value.toString());
                break;
            case 9:
                listaConfiguracao.get(row).setIpSitef(value.toString());
                break;
            case 10:
                listaConfiguracao.get(row).setTipoTef(value.toString());
                break;
            case 11:
                listaConfiguracao.get(row).setTituloTelaCaixa(value.toString());
                break;
            case 12:
                listaConfiguracao.get(row).setCaminhoImagensProdutos(value.toString());
                break;
            case 13:
                listaConfiguracao.get(row).setCaminhoImagensMarketing(value.toString());
                break;
            case 14:
                listaConfiguracao.get(row).setCaminhoImagensLayout(value.toString());
                break;
            case 15:
                listaConfiguracao.get(row).setCorJanelasInternas(value.toString());
                break;
            case 16:
                listaConfiguracao.get(row).setMarketingAtivo((char) value);
                break;
            case 17:
                listaConfiguracao.get(row).setCfopEcf(Integer.valueOf(valor));
                break;
            case 18:
                listaConfiguracao.get(row).setCfopNf2(Integer.valueOf(valor));
                break;
            case 19:
                listaConfiguracao.get(row).setTimeoutEcf(Integer.valueOf(valor));
                break;
            case 20:
                listaConfiguracao.get(row).setIntervaloEcf(Integer.valueOf(valor));
                break;
            case 21:
                listaConfiguracao.get(row).setDescricaoSuprimento(value.toString());
                break;
            case 22:
                listaConfiguracao.get(row).setDescricaoSangria(value.toString());
                break;
            case 23:
                listaConfiguracao.get(row).setIndiceGerencialDav(Integer.valueOf(valor));
                break;
        }
        fireTableCellUpdated(row, col);
    }
}